#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
    int n, x;
    scanf("%d %d", &n, &x);
    int count = 0;
    for (int i = 1; i <= n; i++)
    {
        int m = i;
        while (m)//循环运行的条件
        {
            if (m % 10 == x)    //如果m除以10的余数是x的话，那么count就++       
                count++;
            m = m / 10;        //再次定义m的值
        }
    }
    printf("%d\n", count);

    return 0;
}

//m /= 10; 表示将变量 m 除以 10 并将结果重新赋值给 m。这种操作在循环中用于逐步移除 m 的最低位数字，从而逐位检查 m 中的每个数字。
//假设 i 的值为 123，那么在第一次迭代中 m 也将是 123。循环开始时：
/*1.检查 m % 10，得到 3。如果这个数字等于 x，则 count 加一。
2.然后执行 m /= 10，此时 m 的值变为 12（即去掉了最低位的 3）

在下一次循环迭代中:
1.再次检查 m % 10，得到 2。重复判断过程
2.执行 m /= 10，现在 m 的值变为 1。

在第三次循环迭代中：
1.检查 m % 10，得到 1。再次进行判断
2.执行 m /= 10，此时 m 的值变为 0，因为 1 除以 10 等于 0。



当 m 变为 0 时，while 循环的条件不再满足，循环结束。这样，通过逐步除以 10，代码能够检查 i 的每一位数字，并对等于 x 的数字进行计数。

使用 m /= 10 而不是 m = m / 10 的好处是，/= 操作符直接对整数进行除法操作并更新 m 的值，避免了进行浮点数除法然后再进行类型转换的需要。*/